package com.lovo.atm.service;

import com.lovo.atm.bean.AtmUserBean;
import com.lovo.atm.bean.MessageBean;
import com.lovo.homework.bean.UserBean;

import java.time.LocalDate;
import java.util.List;

public interface IAtmService {
    /**
     * 登录
     *
     * @param name 用户名
     * @param psw  密码
     * @return 用户，登录失败返回null
     */
    public AtmUserBean Login(String name, String psw);



    /**
     * 按照账号查询
     * @param code 账号
     * @return 账号对象
     */
     AtmUserBean findByCode (String code);


    /**
     * 存钱 ，同时添加交易明细
     *
     * @param code  用户的账号
     * @param count 存款金额
     */
    public void saveMoney(String code, int count);

    /**
     * 取钱，
     * 1.按账号查询账号对象
     * 2.比较账号对象的金额和取款金额，如果取款金额大于余额，返回false
     * 3.如果余额充足将账号金额减少，
     * 4.添加交易明细
     * @param code  用户
     * @param count 取款金额
     * @reture 是否成功，账号余额不足返回假
     */
    public boolean getMoney(String code, int count);

    /**
     * 转账
     * 1.先按原账号和目标账号。查询账号对象和目标账号对象
     * 2.如果目标账号对象为null，返回”目标账号不存在的信息“
     * 3.如果原账号的余额小于 转账金额，返回‘余额不足’
     * 4.原账号减去金额
     * 5.目标账号加上金额
     * 6.记录原账户转出金额交易日志
     * 7.记录目标账号转入金额交易日志
     * @param code 转账的账号
     * @param targetCode 目标账号
     * @param count   转账金额
     * @return 转账是否成功信息
     */
    public String trans(String code, String targetCode, int count);



}
